from typing import List
from models import Case, Character, Evidence, CharacterType, EvidenceType

def load_cases() -> List[Case]:
    """加载案例库"""
    return [
        Case(
            title="豪宅谋杀案",
            description="富商李明在自己的书房中被发现死亡，头部遭受重击。现场门窗紧锁，只有家人和几个客人在场。",
            victim_name="李明",
            crime_scene="李明豪宅书房",
            time_of_crime="昨晚10点30分左右",
            characters=[
                Character(
                    name="王美丽",
                    age=35,
                    occupation="妻子",
                    personality="表面温柔贤惠，实则心机深沉，善于伪装和操控他人情绪",
                    background="嫁给李明5年，表面恩爱实则同床异梦。最近发现丈夫出轨并准备离婚，但不想净身出户",
                    secret="已经暗中联系律师准备离婚诉讼，同时在转移夫妻共同财产。当晚与李明因财产分割发生激烈争吵",
                    alibi="声称10点后一直在厨房准备夜宵，但实际上10点25分左右去书房与李明争执",
                    motive="既要报复出轨的丈夫，又要确保能继承大部分遗产",
                    knowledge=["李明的出轨证据", "家庭财产状况", "保险箱密码", "当晚每个人的大致位置"],
                    character_type=CharacterType.SUSPECT,
                    is_guilty=True
                ),
                Character(
                    name="李小华",
                    age=28,
                    occupation="儿子",
                    personality="叛逆冲动，沉迷赌博，但内心还有良知。说话直接不会掩饰",
                    background="大学毕业后无所事事，沉迷网络赌博。与父亲关系恶劣，经常因为钱发生争吵。最近欠下巨额赌债",
                    secret="欠了200万高利贷，催债的威胁要砍断他的手。当晚曾想向父亲求助但被拒绝",
                    alibi="声称晚上9点后一直在房间打游戏，但中途确实出来过几次",
                    motive="急需大笔资金还债，否则性命难保",
                    knowledge=["父亲的脾气和习惯", "家里的布局和作息", "10点25分左右听到书房传来争吵声", "10点30分左右听到重物倒地声", "王美丽最近行为很奇怪，经常偷偷打电话"],
                    character_type=CharacterType.SUSPECT
                ),
                Character(
                    name="张秘书",
                    age=26,
                    occupation="私人秘书",
                    personality="表面专业谨慎，内心情感复杂。观察力敏锐，善于察言观色",
                    background="名牌大学毕业，为李明工作3年。工作能力强深受信任，但暗中爱慕老板。知道很多家庭内部秘密",
                    secret="深深暗恋李明，嫉妒王美丽。发现李明出轨后既愤怒又看到了机会，幻想过李明离婚后和自己在一起",
                    alibi="声称晚上一直在客厅整理明天的工作文件，10点15分左右去厨房倒水时听到书房有动静",
                    motive="复杂的爱恨情仇，既想保护李明又嫉妒他的婚姻",
                    knowledge=["李明的工作安排和秘密", "王美丽最近频繁查看离婚相关法律", "10点15分听到书房有动静", "10点35分看到王美丽从洗手间出来，神色慌张", "王美丽包里有法律文件"],
                    character_type=CharacterType.SUSPECT
                ),
                Character(
                    name="刘管家",
                    age=55,
                    occupation="管家",
                    personality="忠诚老实，但有强烈的道德观念。说话谨慎，但内心正义感很强",
                    background="在李家工作15年，从李小华小时候就照顾这个家。视李家为自己的家，对李明的背叛行为深感失望",
                    secret="知道李明所有的秘密包括外遇，也知道王美丽在转移财产。对李明的道德沦丧感到愤怒和失望",
                    alibi="晚上在厨房和餐厅之间忙碌，准备宵夜和收拾餐具，11点左右去书房找李明汇报明日安排时发现尸体",
                    motive="对李明背叛家庭的愤怒，认为他不配拥有这个家",
                    knowledge=["所有人的秘密和行踪", "家庭15年来的变化", "10点05分后王美丽就不在厨房了", "10点20分听到书房争吵声", "10点40分发现洗手间有异常", "11点发现李明尸体并立即报警"],
                    character_type=CharacterType.SUSPECT
                ),
                Character(
                    name="陈医生",
                    age=45,
                    occupation="法医",
                    personality="专业，客观，注重细节",
                    background="有20年法医经验，是李明的私人医生，当晚恰好在附近处理其他事务",
                    secret="无特殊秘密，但对李明家庭状况有所了解",
                    alibi="当晚11点接到刘管家电话后赶到现场，之前在附近的医院值班",
                    motive="无作案动机",
                    knowledge=["死亡时间推断：10点30分到45分之间", "死因：头部钝器重击", "现场门窗确实从内部锁闭", "血迹分析显示一次性致命打击"],
                    character_type=CharacterType.EXPERT
                )
            ],
            evidence=[
                # 第一层：动机证据
                Evidence(
                    name="离婚协议草稿",
                    description="在王美丽的包中发现离婚协议草稿，上面详细列出了财产分割方案",
                    location="王美丽包中",
                    evidence_type=EvidenceType.DOCUMENT,
                    significance="表明王美丽早有离婚打算，对财产分割有明确规划",
                    known_by=["张秘书"]  # 秘书整理文件时偶然看到
                ),
                Evidence(
                    name="出轨照片",
                    description="李明与年轻女子的亲密照片，拍摄时间显示为一周前",
                    location="王美丽手机中",
                    evidence_type=EvidenceType.DOCUMENT,
                    significance="王美丽掌握了丈夫出轨的确凿证据，这是强烈的作案动机",
                    known_by=["王美丽"]  # 只有她自己知道
                ),
                
                # 第二层：时间线证据
                Evidence(
                    name="神秘电话",
                    description="李明手机显示10点20分接到3分钟通话，来电显示为'老婆'",
                    location="受害者身上",
                    evidence_type=EvidenceType.DOCUMENT,
                    significance="证明王美丽在案发前主动联系了李明，与她声称的不知情矛盾",
                    known_by=["陈医生"]  # 法医检查手机时发现
                ),
                Evidence(
                    name="厨房监控时间",
                    description="厨房的时钟显示王美丽最后一次出现是10点05分，之后再无踪影",
                    location="厨房",
                    evidence_type=EvidenceType.PHYSICAL,
                    significance="与王美丽声称10点后一直在厨房的说法矛盾",
                    known_by=["刘管家"]  # 管家注意到厨房的异常
                ),
                
                # 第三层：物理证据
                Evidence(
                    name="血迹铜像",
                    description="书房铜像底座有血迹，经检验与受害者血型匹配，表面有擦拭痕迹",
                    location="书房",
                    evidence_type=EvidenceType.PHYSICAL,
                    significance="凶器被人故意清理过，说明凶手有反侦察意识",
                    known_by=["陈医生"]  # 法医发现擦拭痕迹
                ),
                Evidence(
                    name="女式拖鞋印",
                    description="书房地毯上发现女式拖鞋印，尺码约37码，花纹特殊",
                    location="书房",
                    evidence_type=EvidenceType.PHYSICAL,
                    significance="证明有女性进入过书房，需要与在场女性的鞋子比对",
                    known_by=["陈医生"]  # 法医仔细勘察发现
                ),
                Evidence(
                    name="保险箱密码",
                    description="保险箱被正确密码打开，没有暴力破解痕迹，现金被取走部分",
                    location="书房",
                    evidence_type=EvidenceType.PHYSICAL,
                    significance="凶手知道密码，说明是内部人员作案",
                    known_by=["王美丽", "刘管家"]  # 知道密码的人
                ),
                
                # 第四层：行为证据
                Evidence(
                    name="银行转账记录",
                    description="案发前三天，王美丽分批转移了500万资金到海外账户",
                    location="银行记录",
                    evidence_type=EvidenceType.DOCUMENT,
                    significance="表明王美丽早有预谋，提前转移财产",
                    known_by=["张秘书"]  # 秘书处理财务时发现异常
                ),
                Evidence(
                    name="清洁用品异常",
                    description="案发后发现洗手间的毛巾和清洁剂被大量使用，有血迹残留",
                    location="洗手间",
                    evidence_type=EvidenceType.PHYSICAL,
                    significance="凶手案发后进行了清理，试图销毁证据",
                    known_by=["刘管家"]  # 管家清理时发现异常
                )
            ],
            solution="王美丽是真凶。她发现丈夫出轨并掌握证据后，提前制定了谋杀计划。案发当晚，她主动打电话约李明到书房谈话，趁机用铜像将其击毙，然后清理现场并转移部分财产，伪造不在场证明。",
            key_clues=["出轨照片提供动机", "提前转移财产显示预谋", "电话记录证明主动约见", "时间线证明不在场证明虚假", "女式拖鞋印证明进入书房", "清洁用品异常显示事后清理"]
        )
    ] 